﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace e77.Ud2.HeadEnums
{
    public enum ECommand : byte
    {
        Error = 0xFF, // Válasznál ha a Parancs-nál FFh-255 –van akkor az hibát jelent.
        Version = 0, // SW verzió lekérdező parancs.
        GetHwInfo = 1, // HW információ lekérdezése. Pl. gyáriszám, HW verzió, cikkszám stb.
        SetHwInfo = 2, // HW információ beállítása. Csak az első két bájt állítható, a szériaszám és a verzió fix.
        Measure = 3, // Egy PAD lemérése.
        FastMeasure = 4, // Egy PAD lemérése gyors méréssel. Az eredmény pontatlan, viszont a mérés sokkal gyorsabb.
        LedOn = 5, // LED bekapcsolása.
        LedOff = 6, // LED kikapcsolása.
        GetAllValues = 7, // Az összes mért eredmény felküldése. Minden ledre tartalmazza a két reflektált jelet a két érzékelőn, valamint a led saját visszamért jelét és az erősítési értéket.
        GetAllValuesGain = 8, // Az összes mért eredmény felküldése, előre beállított erősítéssel. Minden ledre tartalmazza a két reflektált jelet a két érzékelőn, valamint a led saját visszamért jelét ezek sötét értékét is és az erősítési értéket.
        MeasureGain = 9, // Egy PAD lemérése, led maszkkal és erősítéssel.
        GetTemp = 10, // Hőmérséklet és tápfeszültség mérés.
        GetCrc = 11, // Checksum lekérdezés.
        StripMove = 12, // Csíktartó mozgatása relatív kordinátával.
        StripFind = 13, // Csíktartó mérése, automatikus csíkdetektáláshoz.
        StripMoveAbs = 14, // Csíktartó mozgatása abszolút kordinátával
        MeasureDual = 15, // Egy PAD lemérése, két csatornával külön-külön
        GetPassword = 16, //Program kiolvasás (kódolt)jelszavának lekérése
        //InvalidEnum = -3 // '\xFD'
        //hc_MinEnum = hc_Base,        // Az enumeráció minimális értéke. Mindíg a legkisebb értékre kell állítani
        //hc_MaxEnum = hc_MeasureDual  // Az enumeráció maximális értéke. Mindíg a legnagyobb értékre kell állítani
    };

    [Flags, DefaultValue(ELedMask.AllOn)]
    public enum ELedMask
    {
        green = 0x001,
        cyan = 0x002,
        orange = 0x004,
        red = 0x008,
        AllOff = 0x000,
        AllOn =  0x00F, 

        //hl_MaskEnd = 0x0FF,
        //hl_InvalidEnum = 0x100
    };
}

namespace e77.Ud2
{
    [DefaultValue(EMotor.Release)]
    public enum EMotor : short
    {
        Release = 0x7FFF,
        //Invalid = 0x8000,
        Init = 0x0000
    };

    public enum EMotorError
    {
        NoError = 0,
        InTimeout = 1,
        OutTimeout = 2,
        InvalidPosition = 3, //Initialising needed
        NullPositionError = 4,
        Other,
        GeneralTimeout, //timeout for the CalBoard
    }


}